package com.whfc.hdc.dao;

import com.whfc.hdc.dto.AppDeviceCmdDTO;
import com.whfc.hdc.entity.AppDeviceCmd;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;

@Repository
public interface AppDeviceCmdMapper {

    int insertSelective(AppDeviceCmd record);

    int updateByPrimaryKeySelective(AppDeviceCmd record);

    /**
     * 查询最新的硬件指令
     *
     * @param deviceId
     * @return
     */
    AppDeviceCmdDTO selectLastCmdByDeviceId(@Param("deviceId") Integer deviceId);

    /**
     * 查询最新的硬件指令
     *
     * @param deviceId
     * @param cmd
     * @return
     */
    AppDeviceCmdDTO selectLastCmdByDeviceIdAndCmd(@Param("deviceId") Integer deviceId, @Param("cmd") Integer cmd);

    /**
     * 更新指令已发送
     *
     * @param id
     * @param time
     * @return
     */
    int updateCmdSend(@Param("id") Integer id, @Param("time") Date time);

    /**
     * 更新指令已经确认
     *
     * @param id
     * @param time
     * @return
     */
    int updateCmdAck(@Param("id") Integer id, @Param("time") Date time);

    /**
     * 更新指令成功
     *
     * @param id
     * @param time
     * @return
     */
    int updateCmdSuccess(@Param("id") Integer id, @Param("time") Date time);

    /**
     * 更新指令失效
     *
     * @param id
     * @param time
     * @return
     */
    int updateCmdFail(@Param("id") Integer id, @Param("time") Date time);
}